🧭 Подготовка окружения и вступление в профессию
🎯 Цель раздела
Этот документ познакомит вас с профессией инженера по сопровождению RPM-пакетов в экосистеме ROSA Linux и поможет подготовить рабочее окружение. После прохождения этого этапа вы:
- поймёте, чем занимается инженер сопровождения;
- узнаете, что такое RPM и зачем нужны SRPM-пакеты;
- установите необходимые инструменты и настроите окружение для сборки;
- получите общее представление о цикле жизни пакета в ROSA.
💡 Кто такой инженер по сопровождению RPM-пакетов
Инженер сопровождения пакетов (Package Maintainer) — это специалист, отвечающий за:
- сборку и обновление пакетов в дистрибутиве (например, ROSA Linux);
- адаптацию исходного кода под экосистему дистрибутива;
- применение патчей, поддержку зависимостей и соответствие политикам качества;
- реакцию на ошибки сборки, обновления зависимостей, уязвимости и новые версии ПО.
Проще говоря, вы — посредник между разработчиками программ и пользователями дистрибутива, обеспечивающий стабильность и актуальность пакетов.
🧩 Основные понятия
| Термин | Определение |
|---|---|
| RPM | Формат пакетов в дистрибутивах семейства RedHat/ROSA. Хранит бинарные файлы, метаданные и сценарии установки. |
| SRPM | Source RPM — архив с исходниками и SPEC-файлом. Используется для сборки бинарного RPM. |
| SPEC-файл | Инструкции для сборки пакета: откуда брать исходники, как собирать, какие зависимости и скрипты использовать. |
| Buildroot | Изолированное окружение, где происходит сборка пакета. |
| rpmbuild | Основная утилита для сборки RPM-пакетов. |
🧰 Подготовка окружения
Перед началом работы убедитесь, что у вас установлена ROSA Linux (Fresh или Enterprise). Для разработки удобнее использовать ROSA Fresh с актуальными пакетами.
1. Установка необходимых инструментов
sudo dnf install rpm-build rpmdevtools git gnupg1
2. Создание рабочей структуры каталогов
rpmdev-setuptree
После выполнения команды появится структура:
~/rpmbuild/
├── BUILD
├── RPMS
├── SOURCES
├── SPECS
└── SRPMS
3. Проверка версии сборочных инструментов
rpm --version
rpmbuild --version
Если видите что-то вроде RPM version 4.19.1, — всё готово.
🧱 Настройка Git и репозитория
Сопровождающий инженер обязательно работает с Git — все пакеты хранятся в репозиториях ROSA.
git config --global user.name "Ваше имя"
git config --global user.email "you@example.com"
Далее потребуется доступ в систему Automated Build Farm (ABF) — об этом подробно будет в отдельном разделе.
⚙️ Проверка готовности системы
Проверьте, что утилиты из списка доступны:
| Команда | Назначение |
|---|---|
rpmbuild | Сборка пакетов |
rpm | Управление установленными пакетами |
dnf | Менеджер пакетов ROSA |
rpmlint | Проверка качества пакетов |
mock | Изолированная среда сборки |
git | Контроль версий |
Если чего-то не хватает, установите:
sudo dnf install rpmlint mock
🔍 Проверка работы на тестовом пакете
Создадим тестовый SPEC для тренировки:
rpmdev-newspec hello
В папке ~/rpmbuild/SPECS появится файл hello.spec — основа будущих практических заданий.
🧭 Итого
Теперь вы:
- понимаете роль инженера сопровождения;
- настроили базовое окружение;
- подготовили структуру для сборки пакетов;
- сделали первые шаги к работе с RPM.
Следующий документ будет посвящён основам Linux и командной строки, которые необходимы для уверенной навигации и сборки пакетов.
💬 Совет: сохраняйте свои изменения в Git и ведите личный журнал изучения — это поможет вам выстроить системное понимание и быстро адаптироваться к работе в ROSA Team.